<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Document</title>
</head>

<body>
    <script>

        // - Set
        //     - es6提供了一个新的数据结构 Set 。这种数据结构 类似于数组 但是 所有数组项（成员）的值 都是唯一的 不能有重复
        //         - 创建方式
        // - ```js
        //   写作：let set1 = new Set([1,2,3,4,5])
        //     - 注意：set数据中 不会有重复的成员 如果我们在编写的时候 写重复了 set数据 会自动去重
        //         - 我们可以使用set数据结构 来给数组去重
        let arr = [1, 2, 3, 4, 2, 2, 1, 4, 3,];
        let set1 = new Set(arr);
        console.log(set1)
        //set是一种伪数组  因此 我们可以利用数组的from方法 将伪数组转换为真数组
        let arr1 = Array.from(set1);
        console.log(arr1);
        // - 相关属性

        // - **size**   本属性 记录set数据的长度 也就是set数据中 成员的个数  类似于数组的length属性
        let set = new Set([1, 2, 3, 4, 5]);
        console.log(set.size)
        // - **add方法**
        //   - 用法：set数据.add(要添加的成员)
        //   - 作用：给set添加指定成员 并返回一个添加好之后的新set数据
        //   - 注意：原本的set数据 也会添加 返回出来的新set数据 也会添加
        let set2 = set.add(6);
        console.log(set2)
        // - **delete方法**
        //   - 用法：set数据.delete(要添加的成员)
        //   - 作用：删除掉set数据中的指定成员 返回一个布尔值 true表示删除成功 false 表示删除失败
        let set3 = set.delete(6);
        console.log(set3);
        console.log(set)
        // - **has方法**
        //   - 用法：set数据.has(指定成员)
        //   - 作用：查询set数据中有没有指定成员 返回布尔值
        let set4 = set.has(7);
        console.log(set4)
        // - **clear方法**
        //   - 用法：set数据.clear()
        //   - 作用：清空set数据中 所有的成员
        set4.clear();
        console.log(set4)

    </script>
</body>

</html>